*/
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_container_add (GTK_CONTAINER (vbox), frame);
da = gtk_drawing_area_new ();
gtk_container_add (GTK_CONTAINER (vbox), label);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_widget_set_vexpand (frame, TRUE);
gtk_container_add (GTK_CONTAINER (vbox), frame);
frame = gtk_frame_new (NULL);
gtk_widget_set_vexpand (frame, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_container_add (GTK_CONTAINER (vbox), frame);
da = gtk_drawing_area_new ();
gtk_container_add (GTK_CONTAINER (vbox), label);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_widget_set_halign (frame, GTK_ALIGN_CENTER);
gtk_widget_set_valign (frame, GTK_ALIGN_CENTER);
gtk_container_add (GTK_CONTAINER (vbox), frame);
gtk_container_add (GTK_CONTAINER (vbox), label);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_widget_set_halign (frame, GTK_ALIGN_CENTER);
gtk_widget_set_valign (frame, GTK_ALIGN_CENTER);
gtk_container_add (GTK_CONTAINER (vbox), frame);
gtk_container_add (GTK_CONTAINER (vbox), label);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_widget_set_halign (frame, GTK_ALIGN_CENTER);
gtk_widget_set_valign (frame, GTK_ALIGN_CENTER);
gtk_container_add (GTK_CONTAINER (vbox), frame);
gtk_container_add (GTK_CONTAINER (vbox), label);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_widget_set_halign (frame, GTK_ALIGN_CENTER);
gtk_widget_set_valign (frame, GTK_ALIGN_CENTER);
gtk_container_add (GTK_CONTAINER (vbox), frame);
gtk_container_add (GTK_CONTAINER (vbox), label);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_widget_set_halign (frame, GTK_ALIGN_CENTER);
gtk_widget_set_valign (frame, GTK_ALIGN_CENTER);
gtk_container_add (GTK_CONTAINER (vbox), frame);
<property name="spacing">8</property>
<child>
<object class="GtkFrame" id="frame1">
- <property name="shadow-type">none</property>
<child>
<object class="GtkLabel" id="n_reshares_label">
<property name="label" translatable="0"><b>2</b>
</child>
<child>
<object class="GtkFrame" id="frame2">
- <property name="shadow-type">none</property>
<child>
<object class="GtkLabel" id="n_favorites_label">
<property name="label" translatable="0"><b>2</b>
gtk_paned_add1 (GTK_PANED (vpaned), hpaned);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request (frame, 60, 60);
gtk_paned_add1 (GTK_PANED (hpaned), frame);
gtk_container_add (GTK_CONTAINER(frame), button);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request (frame, 80, 60);
gtk_paned_add2 (GTK_PANED (hpaned), frame);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request (frame, 60, 80);
gtk_paned_add2 (GTK_PANED (vpaned), frame);
GtkFrameClass
gtk_frame_new
gtk_frame_set_label
+gtk_frame_get_label
gtk_frame_set_label_widget
+gtk_frame_get_label_widget
gtk_frame_set_label_align
-gtk_frame_set_shadow_type
-gtk_frame_get_label
gtk_frame_get_label_align
-gtk_frame_get_label_widget
-gtk_frame_get_shadow_type
<SUBSECTION Standard>
GTK_FRAME
GTK_IS_FRAME
GtkWidget *text_view;
widget = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
text_view = gtk_text_view_new ();
gtk_container_add (GTK_CONTAINER (widget), text_view);
/* Bad hack to add some size to the widget */
WidgetInfo *info;
widget = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
store = gtk_tree_store_new (3, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING);
gtk_tree_store_append (store, &iter, NULL);
gtk_tree_store_set (store, &iter, 0, "Line One", 1, FALSE, 2, "A", -1);
WidgetInfo *info;
widget = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
list_store = gtk_list_store_new (2, G_TYPE_STRING, GDK_TYPE_PIXBUF);
gtk_list_store_append (list_store, &iter);
pixbuf = gdk_pixbuf_new_from_file ("folder.png", NULL);
gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE);
pane = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
gtk_paned_pack1 (GTK_PANED (pane),
- g_object_new (GTK_TYPE_FRAME,
- "shadow-type", GTK_SHADOW_IN,
- NULL),
+ g_object_new (GTK_TYPE_FRAME, NULL),
FALSE, FALSE);
gtk_paned_pack2 (GTK_PANED (pane),
- g_object_new (GTK_TYPE_FRAME,
- "shadow-type", GTK_SHADOW_IN,
- NULL),
+ g_object_new (GTK_TYPE_FRAME, NULL),
FALSE, FALSE);
gtk_container_add (GTK_CONTAINER (hbox),
pane);
pane = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
gtk_paned_pack1 (GTK_PANED (pane),
- g_object_new (GTK_TYPE_FRAME,
- "shadow-type", GTK_SHADOW_IN,
- NULL),
+ g_object_new (GTK_TYPE_FRAME, NULL),
FALSE, FALSE);
gtk_paned_pack2 (GTK_PANED (pane),
- g_object_new (GTK_TYPE_FRAME,
- "shadow-type", GTK_SHADOW_IN,
- NULL),
+ g_object_new (GTK_TYPE_FRAME, NULL),
FALSE, FALSE);
gtk_container_add (GTK_CONTAINER (hbox),
pane);
WidgetInfo *info;
widget = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
list = gtk_list_box_new ();
gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_BROWSE);
WidgetInfo *info;
widget = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
box = gtk_flow_box_new ();
gtk_flow_box_set_min_children_per_line (GTK_FLOW_BOX (box), 2);
GtkWidget *gears;
widget = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
gears = gtk_gears_new ();
gtk_container_add (GTK_CONTAINER (widget), gears);
g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_container_add (GTK_CONTAINER (window), frame);
drawing_area = gtk_drawing_area_new ();
gtk_widget_add_controller (priv->popup_window, controller);
popup_frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (popup_frame),
- GTK_SHADOW_ETCHED_IN);
gtk_container_add (GTK_CONTAINER (priv->popup_window), popup_frame);
priv->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
* # CSS nodes
*
* |[<!-- language="plain" -->
- * frame[.flat]
+ * frame
* ├── <label widget>
* ╰── <child>
* ]|
* GtkFrame has a main CSS node with name “frame”, which is used to draw the
* visible border. You can set the appearance of the border using CSS properties
* like “border-style” on this node.
- *
- * The node can be given the style class “.flat”, which is used by themes to
- * disable drawing of the border. To do this from code, call
- * gtk_frame_set_shadow_type() with %GTK_SHADOW_NONE to add the “.flat” class or
- * any other shadow type to remove it.
*/
typedef struct
/* Properties */
GtkWidget *label_widget;
- gint16 shadow_type;
+ guint has_frame : 1;
gfloat label_xalign;
} GtkFramePrivate;
PROP_0,
PROP_LABEL,
PROP_LABEL_XALIGN,
- PROP_SHADOW_TYPE,
PROP_LABEL_WIDGET,
LAST_PROP
};
0.0,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
- frame_props[PROP_SHADOW_TYPE] =
- g_param_spec_enum ("shadow-type",
- P_("Frame shadow"),
- P_("Appearance of the frame"),
- GTK_TYPE_SHADOW_TYPE,
- GTK_SHADOW_ETCHED_IN,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
-
frame_props[PROP_LABEL_WIDGET] =
g_param_spec_object ("label-widget",
P_("Label widget"),
GtkFramePrivate *priv = gtk_frame_get_instance_private (frame);
priv->label_widget = NULL;
- priv->shadow_type = GTK_SHADOW_ETCHED_IN;
+ priv->has_frame = TRUE;
priv->label_xalign = 0.0;
}
case PROP_LABEL_XALIGN:
gtk_frame_set_label_align (frame, g_value_get_float (value));
break;
- case PROP_SHADOW_TYPE:
- gtk_frame_set_shadow_type (frame, g_value_get_enum (value));
- break;
case PROP_LABEL_WIDGET:
gtk_frame_set_label_widget (frame, g_value_get_object (value));
break;
case PROP_LABEL_XALIGN:
g_value_set_float (value, priv->label_xalign);
break;
- case PROP_SHADOW_TYPE:
- g_value_set_enum (value, priv->shadow_type);
- break;
case PROP_LABEL_WIDGET:
g_value_set_object (value,
priv->label_widget ?
return priv->label_xalign;
}
-/**
- * gtk_frame_set_shadow_type:
- * @frame: a #GtkFrame
- * @type: the new #GtkShadowType
- *
- * Sets the #GtkFrame:shadow-type for @frame, i.e. whether it is drawn without
- * (%GTK_SHADOW_NONE) or with (other values) a visible border. Values other than
- * %GTK_SHADOW_NONE are treated identically by GtkFrame. The chosen type is
- * applied by removing or adding the .flat class to the main CSS node, frame.
- **/
-void
-gtk_frame_set_shadow_type (GtkFrame *frame,
- GtkShadowType type)
-{
- GtkFramePrivate *priv = gtk_frame_get_instance_private (frame);
-
- g_return_if_fail (GTK_IS_FRAME (frame));
-
- if ((GtkShadowType) priv->shadow_type != type)
- {
- priv->shadow_type = type;
-
- if (type == GTK_SHADOW_NONE)
- gtk_widget_add_css_class (GTK_WIDGET (frame), "flat");
- else
- gtk_widget_remove_css_class (GTK_WIDGET (frame), "flat");
-
- g_object_notify_by_pspec (G_OBJECT (frame), frame_props[PROP_SHADOW_TYPE]);
- }
-}
-
-/**
- * gtk_frame_get_shadow_type:
- * @frame: a #GtkFrame
- *
- * Retrieves the shadow type of the frame. See
- * gtk_frame_set_shadow_type().
- *
- * Returns: the current shadow type of the frame.
- **/
-GtkShadowType
-gtk_frame_get_shadow_type (GtkFrame *frame)
-{
- GtkFramePrivate *priv = gtk_frame_get_instance_private (frame);
-
- g_return_val_if_fail (GTK_IS_FRAME (frame), GTK_SHADOW_ETCHED_IN);
-
- return priv->shadow_type;
-}
-
static void
gtk_frame_size_allocate (GtkWidget *widget,
int width,
gfloat xalign);
GDK_AVAILABLE_IN_ALL
gfloat gtk_frame_get_label_align (GtkFrame *frame);
-GDK_AVAILABLE_IN_ALL
-void gtk_frame_set_shadow_type (GtkFrame *frame,
- GtkShadowType type);
-GDK_AVAILABLE_IN_ALL
-GtkShadowType gtk_frame_get_shadow_type (GtkFrame *frame);
-
G_END_DECLS
* GtkWidget *hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
* GtkWidget *frame1 = gtk_frame_new (NULL);
* GtkWidget *frame2 = gtk_frame_new (NULL);
- * gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
- * gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_IN);
*
* gtk_widget_set_size_request (hpaned, 200, -1);
*
<property name="name">browse</property>
<property name="child">
<object class="GtkFrame">
- <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="hexpand">1</property>
<template class="GtkStatusbar" parent="GtkWidget">
<child>
<object class="GtkFrame" id="frame">
- <property name="shadow-type">none</property>
<property name="hexpand">1</property>
<child>
<object class="GtkBox" id="message_area">
"halign", halign,
"valign", valign,
NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
gtk_label_set_markup (GTK_LABEL (label), caption);
gtk_container_add (GTK_CONTAINER (frame), child);
gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (win))), vbox);
frame = gtk_frame_new ("<b>GtkFileChooserButton</b>");
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
gtk_label_set_use_markup (GTK_LABEL (gtk_frame_get_label_widget (GTK_FRAME (frame))), TRUE);
gtk_container_add (GTK_CONTAINER (vbox), frame);
{
sensitive = TRUE;
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
gtk_container_add (GTK_CONTAINER (frame), box);
gtk_frame_set_label_align (frame, xalign);
}
-static void
-draw_border_cb (GtkToggleButton *toggle_button, GtkFrame *frame)
-{
- GtkShadowType shadow_type = gtk_toggle_button_get_active (toggle_button)
- ? GTK_SHADOW_IN : GTK_SHADOW_NONE;
-
- gtk_frame_set_shadow_type (frame, shadow_type);
-}
-
static void
quit_cb (GtkWidget *widget,
gpointer data)
GtkFrame *frame;
GtkGrid *grid;
gfloat xalign;
- gboolean draw_border;
gboolean done = FALSE;
gtk_init ();
gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), 0);
gtk_grid_attach (grid, widget, 1, 2, 1, 1);
- /* CheckButton to control whether to draw border */
- draw_border = gtk_frame_get_shadow_type (frame) != GTK_SHADOW_NONE;
- widget = gtk_check_button_new_with_label ("draw border");
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), draw_border);
- g_signal_connect (widget, "toggled", G_CALLBACK (draw_border_cb), frame);
- gtk_grid_attach (grid, widget, 0, 3, 1, 1);
-
gtk_widget_show (window);
while (!done)
gtk_paned_add1 (GTK_PANED (vpaned), hpaned);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request (frame, 60, 60);
gtk_paned_add1 (GTK_PANED (hpaned), frame);
gtk_container_add (GTK_CONTAINER(frame), button);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request (frame, 80, 60);
gtk_paned_add2 (GTK_PANED (hpaned), frame);
frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request (frame, 60, 80);
gtk_paned_add2 (GTK_PANED (vpaned), frame);
frame1 = gtk_frame_new (NULL);
gtk_paned_pack1 (GTK_PANED (hpaned1), frame1, FALSE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (frame1), vbox1);
frame2 = gtk_frame_new (NULL);
gtk_paned_pack1 (GTK_PANED (vpaned1), frame2, FALSE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_IN);
frame5 = gtk_frame_new (NULL);
gtk_container_add (GTK_CONTAINER (frame2), frame5);
frame3 = gtk_frame_new (NULL);
gtk_paned_pack2 (GTK_PANED (vpaned1), frame3, TRUE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_IN);
frame4 = gtk_frame_new ("Buttons");
gtk_container_add (GTK_CONTAINER (frame3), frame4);
frame6 = gtk_frame_new (NULL);
gtk_paned_pack1 (GTK_PANED (hpaned2), frame6, FALSE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame6), GTK_SHADOW_IN);
button13 = gtk_button_new_with_label ("button13");
gtk_container_add (GTK_CONTAINER (frame6), button13);
frame7 = gtk_frame_new (NULL);
gtk_paned_pack1 (GTK_PANED (vpaned2), frame7, FALSE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame7), GTK_SHADOW_IN);
button12 = gtk_button_new_with_label ("button12");
gtk_container_add (GTK_CONTAINER (frame7), button12);
frame8 = gtk_frame_new (NULL);
gtk_paned_pack2 (GTK_PANED (vpaned2), frame8, TRUE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame8), GTK_SHADOW_IN);
button11 = gtk_button_new_with_label ("button11");
gtk_container_add (GTK_CONTAINER (frame8), button11);
frame9 = gtk_frame_new (NULL);
gtk_paned_pack1 (GTK_PANED (hpaned3), frame9, FALSE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame9), GTK_SHADOW_IN);
button14 = gtk_button_new_with_label ("button14");
gtk_container_add (GTK_CONTAINER (frame9), button14);
frame10 = gtk_frame_new (NULL);
gtk_paned_pack1 (GTK_PANED (hpaned4), frame10, FALSE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame10), GTK_SHADOW_IN);
button15 = gtk_button_new_with_label ("button15");
gtk_container_add (GTK_CONTAINER (frame10), button15);
frame11 = gtk_frame_new (NULL);
gtk_paned_pack1 (GTK_PANED (hpaned5), frame11, FALSE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame11), GTK_SHADOW_IN);
button16 = gtk_button_new_with_label ("button16");
gtk_container_add (GTK_CONTAINER (frame11), button16);
frame12 = gtk_frame_new (NULL);
gtk_paned_pack2 (GTK_PANED (hpaned5), frame12, TRUE, TRUE);
- gtk_frame_set_shadow_type (GTK_FRAME (frame12), GTK_SHADOW_IN);
button17 = gtk_button_new_with_label ("button17");
gtk_container_add (GTK_CONTAINER (frame12), button17);